home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
turbovis
/
tvtool17.zip
/
PROTOS.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-01
|
3KB
|
102 lines
/***
* Copyright (C) 1993 Marc Stern (internet: stern@mble.philips.be)
*
* File : protos.h
*
* Description : General macros to write a function declaration and
* definition once for both types of system: with and
* without prototypes.
*
* OS/Compiler : All
*
* Usage : - With a compiler that does not accept prototypes,
* the NO_PROTO has to be defined through a -D option
* to the compiler.
*
* - macro PROTO is intended to be used for prototyping
* or declaring functions (usually inside header files)
* ex:
* extern int PROTO( read_data, (char*, int) );
*
* - macros FUNCDEFx are intended to be used for defining
* functions (inside body files)
* ex:
* int FUNCDEF2( read_data, char*, buffer, int, length );
*
***/
#ifndef _PROTOS_H
#define _PROTOS_H
#if ! defined(NO_PROTO)
# define PROTO(fct,args) \
fct args
# define FUNCDEF0(f) \
f(void)
# define FUNCDEF1(f,t1,a1) \
f(t1 a1)
# define FUNCDEF2(f,t1,a1,t2,a2) \
f(t1 a1,t2 a2)
# define FUNCDEF3(f,t1,a1,t2,a2,t3,a3) \
f(t1 a1,t2 a2,t3 a3)
# define FUNCDEF4(f,t1,a1,t2,a2,t3,a3,t4,a4) \
f(t1 a1,t2 a2,t3 a3,t4 a4)
# define FUNCDEF5(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
f(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
# define FUNCDEF6(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
f(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
# define FUNCDEF7(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
f(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
# define FUNCDEF8(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
f(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
#else /* NO_PROTO */
# define PROTO(fct,args) \
fct()
# define FUNCDEF0(f) \
f()
# define FUNCDEF1(f,t1,a1) \
f(a1) \
t1 a1;
# define FUNCDEF2(f,t1,a1,t2,a2) \
f(a1,a2) \
t1 a1;t2 a2;
# define FUNCDEF3(f,t1,a1,t2,a2,t3,a3) \
f(a1,a2,a3) \
t1 a1;t2 a2;t3 a3;
# define FUNCDEF4(f,t1,a1,t2,a2,t3,a3,t4,a4) \
f(a1,a2,a3,a4) \
t1 a1;t2 a2;t3 a3;t4 a4;
# define FUNCDEF5(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
f(a1,a2,a3,a4,a5) \
t1 a1;t2 a2;t3 a3;t4 a4;t5 a5;
# define FUNCDEF6(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
f(a1,a2,a3,a4,a5,a6) \
t1 a1;t2 a2;t3 a3;t4 a4;t5 a5;t6 a6;
# define FUNCDEF7(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
f(a1,a2,a3,a4,a5,a6,a7) \
t1 a1;t2 a2;t3 a3;t4 a4;t5 a5;t6 a6;t7 a7;
# define FUNCDEF8(f,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
f(a1,a2,a3,a4,a5,a6,a7) \
t1 a1;t2 a2;t3 a3;t4 a4;t5 a5;t6 a6;t7 a7;t8 a8;
#endif /* NO_PROTO */
#endif /* _PROTOS_H */